package com.example.satokendemospringboot.controller;

import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 用于测试登录退出控制
 * 登录测试
 */
@RestController
@RequestMapping("/acc/")
public class LoginController {

    //下面是不同用户不同角色有不同的权限
    // 登录接口  ---- http://localhost:8081/acc/doLogin?username=admin
    // 登录接口  ---- http://localhost:8081/acc/doLogin?username=user
    // 登录接口  ---- http://localhost:8081/acc/doLogin?username=user1
    // 登录接口  ---- http://localhost:8081/acc/doLogin?username=user2
    @RequestMapping("doLogin")
    public SaResult doLogin(String username) {
        // 第1步，先登录上
        StpUtil.login(username);
        // 第2步，获取 Token  相关参数
        SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
        // 第3步，返回给前端
        return SaResult.data(tokenInfo);
    }

    // 查询登录状态  ---- http://localhost:8081/acc/isLogin
    @RequestMapping("isLogin")
    public SaResult isLogin() {
        return SaResult.ok("是否登录：" + StpUtil.isLogin());
    }

    // 查询 Token 信息  ---- http://localhost:8081/acc/tokenInfo
    @RequestMapping("tokenInfo")
    public SaResult tokenInfo() {
        return SaResult.data(StpUtil.getTokenInfo());
    }

    // 测试注销  ---- http://localhost:8081/acc/logout
    @RequestMapping("logout")
    public SaResult logout() {
        StpUtil.logout();
        return SaResult.ok();
    }


}
